package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.system.domain.vo.CardRollDetailsVO;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("门店营销活动规则")
@TableName("new_store_marketing_rules")
public class NewStoreMarketingRule extends AbdulBaseEntity {
    @ApiModelProperty(value = "活动的唯一标识符", example = "1")
    private Long id;

    @ApiModelProperty(value = "活动编号，关联表new_user_registration_activity中活动编号", example = "ACT20231001")
    private String activityCode;

    @ApiModelProperty(value = "是否赠送卡卷（1-否 2-是）", example = "2")
    private Integer isGiftCard;

    @ApiModelProperty(value = "赠送卡卷详情", example = "")
    private String cardRollDetails;

    @ApiModelProperty(value = "赠送积分", example = "100")
    private Integer giftPoints;

    @ApiModelProperty(value = "活动状态(1-启用 2-停用)", example = "1")
    private Integer status;

    @ApiModelProperty(value = "手机号", example = "13800001111")
    private String phone;

    @ApiModelProperty(value = "营销活动设置类型 （1-新用户注册有利 2-批量发放卡卷）", example = "1")
    private Integer marketingType;

    @ApiModelProperty(value = "性别（1-男 0-女）", example = "1")
    private Integer sex;

    @ApiModelProperty(value = "生日开始 月/日", example = "01/01")
    private String birthdayBegins;

    @ApiModelProperty(value = "生日结束 月/日", example = "12/31")
    private String birthdayEnd;

    @ApiModelProperty(value = "会员等级ID（关联会员等级表Id）", example = "黄金会员")
    private Long memberLevelId;

    @ApiModelProperty(value = "累计最低消费", example = "100.00")
    private Double minimumConsumption;

    @ApiModelProperty(value = "累计最高消费", example = "500.00")
    private Double highestConsumption;

    @ApiModelProperty(value = "累计最低时长", example = "1.5")
    private Double minimumDuration;

    @ApiModelProperty(value = "累计最高时长", example = "10.0")
    private Double maximumDuration;

    @ApiModelProperty(value = "最后消费开始时间", example = "2023-01-01")
    private LocalDate lastConsumptionStartTime;

    @ApiModelProperty(value = "最后消费结束时间", example = "2023-12-31")
    private LocalDate lastConsumptionEndTime;

    @ApiModelProperty(value = "封面图", example = "http://example.com/cover.jpg")
    private String coverImage;

    @ApiModelProperty(value = "详情图", example = "http://example.com/detail.jpg")
    private String detailImage;

    //DTO
    @TableField(exist = false)
    @ApiModelProperty(value = "卡卷详情VO")
    List<CardRollDetailsVO> rollDetailsVOList;

    @ApiModelProperty(value = "活动名称", example = "")
    @TableField(exist = false)
    private String activityName;

    @ApiModelProperty(value = "活动有效开始日期", example = "2023-10-01")
    @TableField(exist = false)
    private LocalDate startDate;

    @ApiModelProperty(value = "活动有效结束日期", example = "2023-10-31")
    @TableField(exist = false)
    private LocalDate endDate;
}
